// 定义菜单和菜单项的类型
interface Menu {
    children?: MenuItem[];
}

interface MenuItem {
    path: string;
    name: string;
    component: string;
    meta?: Record<string, any>;
}
export default function addDynamicRoutes(router: any, menus: any[]) {
    // 获取所有注册的路由，包括根路由
    const allRoutes = router.options.routes;

    // 找到名为 'Layout' 的路由配置
    const layoutRoute = allRoutes.find((route: any) => route.name == 'Layout');
    if (!layoutRoute) {
        console.error('Layout route not found.');
        return;
    }

    menus.forEach((menu: Menu) => {
        if (menu.children) {
            menu.children.forEach((child: any) => {
                // 构建路由配置对象
                const routeConfig = {
                    path: child.path,
                    name: child.name, // 假设 child.component 是唯一的路由名称
                    component: () => import(`@/views/${child.component}.vue`), // 使用 ES6 动态导入语法
                    meta: child.meta,
                };
                // 添加新的路由配置到 Layout 路由的子路由中
                router.addRoute(layoutRoute.name, routeConfig);
                allRoutes.find((item: any) => item.name === 'Layout')?.children.push(routeConfig);
            });
        }
    });
    // console.log("allRoutes",allRoutes);
}

